// src/main.js
import Vue from 'vue';
import App from './App.vue';
import router from './router';
import store from './store'; // Vuex store
import ElementUI from 'element-ui';
import VueI18n from 'vue-i18n';
import { messages } from './components/common/i18n';
import 'element-ui/lib/theme-chalk/index.css'; // 默认主题
// import './assets/css/theme-green/index.css'; // 浅绿色主题
import './assets/css/icon.css';
import './components/common/directives';
import 'babel-polyfill';

//使用地图
import ECharts from 'vue-echarts/components/ECharts.vue';
import 'echarts/lib/chart/map';
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title';

Vue.component('v-chart', ECharts);




Vue.config.productionTip = false;

// 注册插件
Vue.use(VueI18n);
Vue.use(ElementUI, {
  size: 'small'
});

// 设置国际化
const i18n = new VueI18n({
  locale: 'zh',
  messages
});

// // 启动前预拉用户信息，然后再渲染应用
// (async () => {
//   try {
//     await store.dispatch('fetchCurrentUser');
//   } catch (err) {
//     // 这里只处理非401错误，例如网络错误、500等
//     // console.warn('拉取当前用户信息时发生错误：', err);
//   } finally {
//     new Vue({
//       router,
//       store,
//       i18n,
//       render: h => h(App)
//     }).$mount('#app');
//   }
// })();
// main.js 或 main.ts

new Vue({
  router,
  store,
  i18n,
  render: h => h(App)
}).$mount('#app');
